package com.daohang361.imqq.tool;

public interface ByteArray {

	public abstract void putByte(byte[] b);

	public abstract void putHex(String hex);

	/**
	 * 保存int数组
	 */
	public abstract void putInt(int value);

	/**
	 * 获取全部内容时需要先执行saveThis()方法
	 * @return byte[]
	 */
	public abstract byte[] getByteList();

	/**
	 * 获取全部内容时需要先执行saveThis()方法
	 * @return String
	 */
	public abstract String getHexString();

	/**
	 * 保存当前到数组,并清空hexString,如果发现当前位置与长度相等则自动将数组长度扩展为之前的1倍
	 */
	public abstract void saveThis();

	/**
	 * 用key加密内部保存数组从begin 到 end 之间的内容，并清空begin 到 end 之间内容，将加密后结构赋给付给begin，
	 * 即相当于begin与end直接内容将被加密后存放于begin位置。
	 */
	public abstract void teaThis(int begin, int end, byte[] key);

	/**
	 * 返回内部数组当前长度
	 */
	public abstract int length();

}